import com.sun.jdi.PathSearchingVirtualMachine;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.Objects;
import java.util.Queue;
import java.util.concurrent.ConcurrentSkipListMap;

/**
 * @ClassName: leetcode-study Test
 * @Description: 给定一个长度为N的整型数组，需要将非零数字往前移动，
 * 非零数字的相对顺序不变，请使用算法实现，
 * 并编写测试用例验证逻辑正确性。要求空间复杂度O(1)，时间复杂度O(n)。
 * @Author: 逸伦
 * @Date: 2023/3/18 16:03
 * @Version: 1.0
 */
public class Test {


//	138 1141 2886
	public static void main(String[] args) {
		int[] arr = {2,4,5,0,1,0,9};
		move(arr);
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
		System.out.println("-----");
		int a =0,b=0;
		System.out.println(a++);
		System.out.println(a);
		System.out.println(++b);
	}
	// 2,4,5,0,1,0,9
	private static void move(int[] arr){
		if(Objects.isNull(arr) || arr.length == 0){
			return;
		}
		int j = 0;
		for(int i=0;i< arr.length; i++){
			if(arr[i] != 0){
				arr[j++] = arr[i];
			}
		}
		for(int i=j; i<arr.length;i++){
			arr[i] = 0;
		}
	}

	private void  swap(int[] arr, int a, int b){
		int tmp = arr[a];
		arr[a] = arr[b];
		arr[b] = tmp;
	}


	public static class Quick implements Serializable{

		public void quickSort(int[] arr , int left, int right){

			int base = arr[left];
			int i = left;
			int j = right;
			while (i < j){
				while(i < j && arr[j] < base){
					j--;
				}
				if(i < j){
					arr[i] = arr[j];
					i++;
				}
				while(i < j && arr[j] > base){
					i++;
				}
				if(i < j){
					arr[j] = arr[i];
					j--;
				}
			}
			arr[i] = base;
			quickSort(arr, left, j-1);
			quickSort(arr, right, i+1);
		}
	}
}
